<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        alert(test1(10,20));  
        function test1(num1,num2){
            return num1+num2;
        }
        alert(test1(30,40));

        // 第一行 不预解析  
        // 第二行 预解析  创建了一个变量 test1 把一个函数赋值给了test1
        // 第三行  不予解析 

        // 预解析结束 test1变量中是个函数  

        // 预解析结束 开始执行 
        // 第一行 因为预解析结束 test1是个函数 这个正常调用 
        // 第三行也是正常调用 

        alert(test2(5,6));
        var test2 = function(a,b) {
            return a*b
        }
        alert(test2(7,8));


        
        // 第一行 不预解析  
        // 第二行 预解析  创建了一个变量 test2 不赋值
        // 第三行  不预解析 


        // 预解析结束 仅仅是有个变量 test2 里边什么也没有  
        // 第一行 因为变量中没有东西 当做函数调用 报错 
        // 第二行 把一个函数赋值给test2 test2是个函数了  
        // 第三行 正常调用  


    </script>
</body>
</html>